package liming.ai.code.v4;

import liming.ai.code.v4.core.QueryCore;
import liming.ai.code.v4.core.RunnableCore;
import liming.ai.code.v4.data.Context;
import liming.ai.code.v4.data.JavaCode;
import liming.tool.file.FileRW;
import org.json.JSONArray;
import org.json.JSONObject;



public class Main {
    public static void main(String[] args) {
        FileRW.setDefaultWritingEncoding(FileRW.FileEncoding.UTF8);
//        chat("生成一个停车场车辆信息管理系统，包含车辆信息管理，车辆权限管理，车辆出入场记录管理");
        chat("根据当前项目代码，优化提示词，整合为一个，加强约束");
    }
    public static Context chat(String query){
        Context context = new Context(query).initContext();
        String chat = QueryCore.chat(context.getAllFileInfo()+"\nquery:\n"+query, QueryCore.newQueryRequest());
        JSONObject response = QueryCore.valueOf(chat);
        try {
            RunnableCore.build(JavaCode.loads(response.optJSONArray("classes",new JSONArray())),context);
        } catch (Exception e) {
            RunnableCore.handleThrowable(context,e);
        }
        return context;
    }
}
